#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

/*
#define OFFSETOF(type, para) (size_t)(&(((type*)0)->para))

struct S
{
	char c1;
	int a;
	char c2;
};

int main()
{
	size_t ret = OFFSETOF(struct S, a);
	printf("%u\n", ret);
	return 0;
}
*/


#define SWAP(n) (n = (((n)&0xaaaaaaaa)>>1)+(((n)&0x55555555)<<1))

int main()
{
	int a = 5;
	SWAP(a);
	printf("%d\n", a);
	return 0;
}